Virtual Desktop Infrastructure (VDI) is a server-centric computing model that hosts and manages desktop virtual machines at a data center while providing end users a full PC desktop experience via thin clients over a network.
Some existing solutions add the ability to switch some incoming client sessions towards traditional shared desktop systems such as Microsoft's Terminal Services or Citrix's application servers, blade servers or even to individual unused physical desktop computers.
VDI solutions involve the remote execution of a Windows instance at a server that sends screen updates across the network to a client display device with a protocol such as RDP or ICA. However, prior protocols flush the video frame buffer to the client roughly once every 100 milliseconds, which is unsuitable for modern graphics-intensive applications and applications requiring audio-video synchronization.
There are several existing approaches of providing VDI solutions.
The “screen scrape” method includes “scrapping” graphical elements painted to the “screen” on the host by the protocol and sent to the client. In a first example, the client can contact the server and pull a new “snapshot” of the screen from the frame buffer. In a second example, the server can continuously push its screen activity to the client. This can be at the frame buffer level, the
GDI/window manager level, or a combination of both. Both examples can utilize caching at the client for frequently used graphical elements.
The screen scrape method can be combined with “multimedia redirection,” where server-side multimedia elements are sent in their native formats to the client devices. The client can then play the multimedia streams locally and dynamically insert them into the proper position on the screen.
This approach is suited if (1) the client has the technical capability and hardware to render the multimedia, and (2) the client has the proper codec installed to properly render the multimedia content. In effect, this means that the clients can't be “too thin.”
Server graphics system virtualization “virtualizes” the graphics system of the host. Software on the host captures all possible graphical layers (GDI, WPF, DirectX, etc.) and renders them into a remote protocol stream (like RDP) sent to the client as fast as possible. This will give the client an experience which is very close to local performance, regardless of the client device (even on very low-end or thin clients).
Hardware acceleration on the server and client utilizes a special chipset on the host, which captures screen for transmission across the network. The client device has a matching special chipset for rendering.
The prior approaches discussed above addressing problems in remote display of graphical information over a network in real time fail to deliver low latency and acceptable level of quality and interactivity for highly dynamic graphics and full-motion video. Problems include:                Limited support for full-motion video.        Significant inherent latency even when working over relatively short distances (WAN).        Poor performance and quality in unreliable network environments with relatively high levels of packet loss, jitter and latency (e.g. Internet).        Inability to prioritize traffic for latency and quality of user experience in presence of significant data streams in the network.        Inconsistent synchronization of audio and video streams.        Inability to handle a variety of inputs and outputs, such as full-body sensing, video, voice, sensors, motion—please add it all to the background.        
The problems above are caused, in part, because existing solutions such as Microsoft RDP, Citrix ICA, AT&T's VNC, and others were designed before video and highly interactive rich graphical user interfaces were ubiquitous on users' computers.
Thus, there is a need for an improved transfer protocol for remote computing.